home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / bin / ifnames-2.59 < prev    next >
Text File  |  2006-04-25  |  4KB  |  151 lines

  1. #! /usr/bin/perl -w
  2. # -*- perl -*-
  3. # Generated from ifnames.in; do not edit by hand.
  4.  
  5. eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec /usr/bin/perl -S "$0" "$@";; esac'
  6.     if 0;
  7.  
  8. # ifnames - print the identifiers used in C preprocessor conditionals
  9.  
  10. # Copyright (C) 1994, 1995, 1999, 2000, 2001, 2002, 2003 Free Software
  11. # Foundation, Inc.
  12.  
  13. # This program is free software; you can redistribute it and/or modify
  14. # it under the terms of the GNU General Public License as published by
  15. # the Free Software Foundation; either version 2, or (at your option)
  16. # any later version.
  17.  
  18. # This program is distributed in the hope that it will be useful,
  19. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21. # GNU General Public License for more details.
  22.  
  23. # You should have received a copy of the GNU General Public License
  24. # along with this program; if not, write to the Free Software
  25. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
  26. # 02111-1307, USA.
  27.  
  28. # Reads from stdin if no files are given.
  29. # Writes to stdout.
  30.  
  31. # Written by David MacKenzie <djm@gnu.ai.mit.edu>
  32. # and Paul Eggert <eggert@twinsun.com>.
  33.  
  34. BEGIN
  35. {
  36.   my $datadir = $ENV{'autom4te_perllibdir'} || '/usr/share/autoconf';
  37.   unshift @INC, $datadir;
  38.  
  39.   # Override SHELL.  On DJGPP SHELL may not be set to a shell
  40.   # that can handle redirection and quote arguments correctly,
  41.   # e.g.: COMMAND.COM.  For DJGPP always use the shell that configure
  42.   # has detected.
  43.   $ENV{'SHELL'} = '/bin/sh' if ($^O eq 'dos');
  44. }
  45.  
  46. use Autom4te::General;
  47. use Autom4te::XFile;
  48.  
  49. # $HELP
  50. # -----
  51. $help = "Usage: $0 [OPTION] ...  [FILE] ...
  52.  
  53. Scan all of the C source FILES (or the standard input, if none are
  54. given) and write to the standard output a sorted list of all the
  55. identifiers that appear in those files in `#if', `#elif', `#ifdef', or
  56. `#ifndef' directives.  Print each identifier on a line, followed by a
  57. space-separated list of the files in which that identifier occurs.
  58.  
  59.   -h, --help      print this help, then exit
  60.   -V, --version   print version number, then exit
  61.  
  62. Report bugs to <bug-autoconf\@gnu.org>.
  63. ";
  64.  
  65.  
  66. # $VERSION
  67. # --------
  68. $version = "ifnames (GNU Autoconf) 2.59
  69. Written by David J. MacKenzie and Paul Eggert.
  70.  
  71. Copyright (C) 2003 Free Software Foundation, Inc.
  72. This is free software; see the source for copying conditions.  There is NO
  73. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  74. ";
  75.  
  76.  
  77. # &parse_args ()
  78. # --------------
  79. # Process any command line arguments.
  80. sub parse_args ()
  81. {
  82.   getopt ();
  83. }
  84.  
  85.  
  86. # %OCCURRENCE
  87. # -----------
  88. my %occurrence;
  89.  
  90.  
  91. # &scan_file ($FILENAME)
  92. # ----------------------
  93. sub scan_file ($)
  94. {
  95.   my ($filename) = @_;
  96.   my $file = new Autom4te::XFile ($filename);
  97.   while ($_ = $file->getline)
  98.     {
  99.       # Continuation lines.
  100.       $_ .= $file->getline
  101.     while (s/\\$//);
  102.  
  103.       # Preprocessor directives.
  104.       if (s/^\s*\#\s*(if|ifdef|ifndef|elif)\s+//)
  105.     {
  106.       # Remove comments.  Not perfect, but close enough.
  107.       s(/\*.*?\*/)();
  108.       s(/\*.*)();
  109.       s(//.*)();
  110.       foreach my $word (split (/\W+/))
  111.         {
  112.           next
  113.         if $word eq 'defined' || $word !~ /^[a-zA-Z_]/;
  114.           $occurrence{$word}{$filename} = 1;
  115.         }
  116.     }
  117.     }
  118. }
  119.  
  120.  
  121. ## ------ ##
  122. ## Main.  ##
  123. ## ------ ##
  124.  
  125. parse_args();
  126. foreach (@ARGV)
  127.   {
  128.     scan_file ($_);
  129.   }
  130. foreach (sort keys %occurrence)
  131.   {
  132.     print "$_ ", join (' ', sort keys %{$occurrence{$_}}), "\n";
  133.   }
  134.  
  135. ### Setup "GNU" style for perl-mode and cperl-mode.
  136. ## Local Variables:
  137. ## perl-indent-level: 2
  138. ## perl-continued-statement-offset: 2
  139. ## perl-continued-brace-offset: 0
  140. ## perl-brace-offset: 0
  141. ## perl-brace-imaginary-offset: 0
  142. ## perl-label-offset: -2
  143. ## cperl-indent-level: 2
  144. ## cperl-brace-offset: 0
  145. ## cperl-continued-brace-offset: 0
  146. ## cperl-label-offset: -2
  147. ## cperl-extra-newline-before-brace: t
  148. ## cperl-merge-trailing-else: nil
  149. ## cperl-continued-statement-offset: 2
  150. ## End:
  151.